home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* DEMORUN Demo Product Setup '************************************************************************** '$DEFINE DEBUG ''Define for script development/debugging '$INCLUDE 'setupapi.inc' '$INCLUDE 'msdetect.inc' ''Dialog ID's CONST WELCOME = 100 CONST ASKQUIT = 200 CONST DESTPATH = 300 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST OPTIONS = 800 CONST DRIVESELECT = 1100 CONST APPHELP = 900 CONST BADPATH = 6400 ''Bitmap ID CONST LOGO = 1 GLOBAL DEST$ ''Default destination directory. GLOBAL OPTCUR$ ''Null for now GLOBAL WINDRIVE$ ''Used in size test GLOBAL SrcDir$ GLOBAL WinDir$ GLOBAL WinSysDir$ GLOBAL DEST_MNU$ GLOBAL OLD_MNU$ GLOBAL VFW% GLOBAL OKWRITE% GLOBAL PRO% GLOBAL WantedDiskSize& ''Used for disk size test DECLARE SUB Install DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING ''DECLARE FUNCTION DoProtect LIB "PROTECT.DLL" (szDisk$) AS INTEGER INIT: CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure SrcDir$ = GetSymbolValue("STF_SRCDIR") WinDir$ = GetWindowsDir() WinSysDir$ = GetWindowsSysDir() MajorVer% = GetWindowsMajorVersion() MinorVer% = GetWindowsMinorVersion() IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software. Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF SetBitmap CUIDLL$, LOGO SetTitle "DEMOquick Developer Training...Created with DEMOquick !" szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "DEMORUN.INF" END IF ReadInfFile szInf$ OPTCUR$ = "1" DEST$ = "C:\DEMORUN" WELCOME: GETPATH: SetSymbolValue "EditTextIn", DEST$ SetSymbolValue "EditFocus", "END" GETPATHL1: sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$) DEST$ = GetSymbolValue("EditTextOut") IF sz$ = "CONTINUE" THEN UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETPATHL1 ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO WELCOME ELSE GOSUB ASKQUIT GOTO WELCOME END IF Install QUIT: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN dlg% = EXITSUCCESS ELSEIF ERR = STFQUIT THEN dlg% = EXITQUIT ELSE dlg% = EXITFAILURE END IF QUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO QUITL1 END IF UIPop 1 END ERRQUIT: i% = DoMsgBox("Setup sources were corrupted, call (508) 263-3030 !", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND) END BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll ERROR STFQUIT ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN '************************************************************************* '** '** Purpose: '** Builds the copy list and performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB Install STATIC ''Save a copy of previous menu (if present)------------------------ DEST_MNU$ = DEST$ + "\DEMORUN.MNU" OLD_MNU$ = DEST$ + "\OLD.MNU" i% = DoesFileExist(DEST_MNU$, femExists) IF i% = 1 THEN CopyFile DEST_MNU$, OLD_MNU$, cmoNone, 0 END IF ''Check the disk space - TEST THIS ON NETWORK DRIVES----------------- WINDRIVE$ = MID$(DEST$, 1, 1) WantedDiskSize&=5800000 DiskSize&=GetFreeSpaceForDrive(WINDRIVE$) If WantedDiskSize& > DiskSize& then i% = DoMsgBox("Not enough free disk space. Need 1.8 MB to install + 4 MB additional to run DEMOquick tutorial.", "Install Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF SrcDir$ = GetSymbolValue("STF_SRCDIR") CreateDir DEST$, cmoNone AddSectionFilesToCopyList "Files", SrcDir$, DEST$ ''Add Video-For-Windows Run-Time files------------------------------ ''See if we can install VFW on system VFW% = DoesFileExist(MakePath(WinSysDir$, "MSVIDEO.DLL"), femExists) OKWRITE% = IsDirWritable(WinSysDir$) IF (VFW% = 0) AND (OKWRITE% = 1) THEN AddSectionFilesToCopyList "VFW Runtime", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$ ELSE IF VFW% = 1 THEN i% = DoMsgBox("Video For Windows drivers already present. Install will continue. Click on OK.", "Video-For-Windows Present", MB_OK+MB_TASKMODAL+MB_ICONINFORMATION) ELSEIF OKWRITE% = 0 THEN i% = DoMsgBox("WINDOWS\SYSTEM directory is write protected. Drivers not installed.", "Video-For-Windows Drivers", MB_OK+MB_TASKMODAL+MB_ICONINFORMATION) ENDIF ENDIF ''Add PROFILE.EXE program if not there ----------------------------- PRO% = DoesFileExist(MakePath(WinSysDir$, "PROFDISP.EXE"), femExists) IF (PRO% = 0) AND (OKWRITE% = 1) THEN AddSectionFilesToCopyList "Profile", SrcDir$, WinSysDir$ ENDIF ''Copy the files................................................... CopyFilesInCopyList ''Update WIN.INI and SYSTEM.INI...................................... CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite CreateIniKeyValue "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite Run ("profdisp") CreateProgmanGroup "DEMOrun", "DEMORUN.GRP", cmoNone ShowProgmanGroup "DEMOrun", 1, cmoNone CreateProgmanItem "DEMOrun", "DEMOquick Sample Tutorial", MakePath(DEST$,"DEMORUN.exe"),"", cmoOverwrite ''Append old .MNU menu to new i% = DoesFileExist(OLD_MNU$, femExists) IF i% = 1 THEN CopyFile OLD_MNU$, DEST_MNU$, cmoNone, 1 END IF END SUB '**--------------------------------------------------------------- '** '** Purpose: '** Appends a file name to the end of a directory path, '** inserting a backslash character as needed. '** Arguments: '** szDir$ - full directory path (with optional ending "\") '** szFile$ - filename to append to directory '** Returns: '** Resulting fully qualified path name. '************************************************************************* FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING IF szDir$ = "" THEN MakePath = szFile$ ELSEIF szFile$ = "" THEN MakePath = szDir$ ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN MakePath = szDir$ + szFile$ ELSE MakePath = szDir$ + "\" + szFile$ END IF END FUNCTION